# -*- coding: utf-8 -*-
"""
@文件    :   rows_colunms.py
@时间    :   2022/05/23 21:23:13
@作者    :   YTNetMan
@版本    :   1.0
@邮箱    :   ytnetman@163.com
@版权    :   (C)Copyright 2022-2025
@分类    :   办公自动化
@功能    :   深入理解Series和DataFrame的用法和区别
"""

import openpyxl
import pandas as pd

#Series 序列的两种方法
#1、用字典来生成序列 ，推荐用这种，比较清晰
dict = {'x':100,'y':200,'z':300}
# print(dict.keys())   #dict_keys(['x', 'y', 'z'])
# print(dict.values())  #dict_values([100, 200, 300])
# print(dict['x'])      #100
s1 = pd.Series(dict)
print(s1)
#2、用列表来生成序列，这种比较绕
list1 = ['x','y','z']
list2 = [100,200,300]
s2 = pd.Series(list2,index=list1)
print(s2)
'''
         做个实例来说明一下  ，假设要生成如下的一张表：
        ID  A   B    C
        1   10  100  1000
        2   20  200  2000
        3   30  300  3000         
    
'''
#依次生成4个列表序列
s1 = pd.Series([1,2,3],index=[1,2,3],name='ID')
s2 = pd.Series([10,20,30],index=[1,2,3],name='A')
s3 = pd.Series([100,200,300],index=[1,2,3],name='B')
s4 = pd.Series([1000,2000,3000],index=[1,2,3],name='C')
#DataFrame 最终决定序列是以行来插入，还是以列来插入
#以字典形式插入的时候，是以列来插入的
#s1和s1.values的结果是一样的，个人感觉加上values意思更完整
df_colunms = pd.DataFrame({s1.name:s1.values,s2.name:s2,s3.name:s3.values,s4.name:s4})
print(df_colunms)
'''
   ID   A    B     C
1   1  10  100  1000
2   2  20  200  2000
3   3  30  300  3000
'''
#以列表方式插入的时候是行插入，用的比较少，注意两处结果的区别
df_rows = pd.DataFrame([s1,s2,s3,s4])
print(df_rows)
'''
       1     2     3
ID     1     2     3
A     10    20    30
B    100   200   300
C   1000  2000  3000
'''
